package it.polimi.jita.cp.block.co;

import it.polimi.jita.cp.block.Input;
import it.polimi.jita.cp.block.de.DemandEstimatorInput;
import it.polimi.jita.cp.block.pc.PenaltyType;

import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;

public class CapacityOptimizatorInput extends Input {

	private final DemandEstimatorInput estimateInput;
	private final Integer virtualCpuNumber;
	private final Double maxPenalty;
	private final Double x0; // passaggio da lin a exp/asy
	private final Double x1; // penalty doppia
	private final Double x2; // asintoto

	private final PenaltyType penaltyType;

	protected CapacityOptimizatorInput(DemandEstimatorInput estimateInput,
			Integer virtualMachinesNumber, Double maxPenalty, Double x0,
			Double x1, Double x2, PenaltyType penaltyType)
			throws FileNotFoundException, UnsupportedEncodingException {
		this.estimateInput = estimateInput;
		this.virtualCpuNumber = virtualMachinesNumber;
		this.maxPenalty = maxPenalty;
		this.x0 = x0;
		this.x1 = x1;
		this.x2 = x2;
		this.penaltyType = penaltyType;
	}

	public DemandEstimatorInput getEstimateInput() {
		return estimateInput;
	}

	public Integer getVirtualCpuNumber() {
		return virtualCpuNumber;
	}

	public Double getMaxPenalty() {
		return maxPenalty;
	}

	public Double getX0() {
		return x0;
	}

	public Double getX1() {
		return x1;
	}

	public Double getX2() {
		return x2;
	}

	public PenaltyType getPenaltyType() {
		return penaltyType;
	}

}
